package com.nf.service;

import com.nf.mapper.TestDao;
import com.nf.mapper.TestDaoImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestServiceImpl implements TestService {

    //private TestDao testDao = new TestDaoImpl();

    private TestDao testDao;

    public void setTestDao(TestDao testDao) {
        //set用于给ioc，注入testDao
        System.out.println("由IOC容器注入了一个dao bean");
        this.testDao = testDao;
    }
    //上面这一句，等效于下面这种注入的方式
    //区别，下面，不用关心实现类是谁，而且注入的过程不需要写代码
    //控制器权交给了ioc容器BeanFactory(WebApplicationContext,这个tomcat启动的时候就启动)


    private float rate;
    public void setRate(float rate) {
        System.out.println("第2步：为 Bean 的属性设置值和对其他 Bean 的引用"+rate);
        this.rate = rate;
    }

    public TestServiceImpl(){
        System.out.println("第1步：TestServiceImpl被实例为Bean"+this);
    }

    @Override
    public String getString(int accountId) {
        System.out.println("a. service中getString...");
        System.out.println("testDao:"+testDao  );
        //写jdbc来访问数据库？
        //把业务逻辑的代码跟数据库访问的代码：耦合了
        //rs.next();
        //-->>
        //testDao.getFloat();
        //float rmb = 100;//100和7.09都是写死的
        //return 100/rate+"美元";
        //return testDao.getFloat()/rate+"美元";
        return testDao.getAccountById(accountId).getBalance()/rate+"美元";
    }
}
